package com.hmall.api.client;

import com.hmall.api.client.fallback.PayClientFallback;
import com.hmall.api.dto.PayOrderDTO;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;

/**
 * 支付服务Feign客户端
 * 功能：通过Feign远程调用pay-service的支付订单查询接口
 */
@FeignClient(
        value = "pay-service",               // 指定服务名，用于服务发现
        fallbackFactory = PayClientFallback.class // 熔断降级工厂
)
public interface PayClient {

    /**
     * 根据业务订单ID查询支付订单信息
     * @param id 业务订单ID（如订单号）
     * @return 支付订单DTO
     * @apiNote 对应pay-service的GET /pay-orders/biz/{id}接口
     */
    @GetMapping("/pay-orders/biz/{id}")
    PayOrderDTO queryPayOrderByBizOrderNo(
            @PathVariable("id") Long id // 路径变量，替换URL中的占位符
    );
}